package com.rename.service.impl;

import com.feign.util.FileUtil;
import com.rename.service.OperateService;
import org.springframework.stereotype.Service;

import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;

@Service
public class OperateServiceImpl implements OperateService {
    /**
     * 重命名文件
     * @param oldFile 旧文件路径
     * @param newFile 新文件路径
     * @return
     * @throws Exception
     */
    @Override
    public void fileRename(String oldFile, String newFile) throws Exception {
        FileUtil.fileRename(new File(oldFile),new File(newFile));
    }

    /**
     * 移动文件
     * @param oldFile 旧文件路径
     * @param newFile 新文件路径
     * @return
     * @throws Exception
     */
    @Override
    public void fileMove(String oldFile, String newFile) throws Exception {
        FileUtil.fileMove(new File(oldFile),new File(newFile));
    }

    /**
     * 创建文件
     * @param currentPath 当前路径
     * @param fileName 文件名
     * @return
     */
    @Override
    public void newFile(String currentPath, String fileName) throws Exception {
        FileUtil.newFile(currentPath, fileName);
    }

    /**
     * 创建文件夹
     * @param currentPath 当前路径
     * @param folderName 文件夹名称
     * @return
     */
    @Override
    public void newFolder(String currentPath, String folderName) throws Exception {
        FileUtil.newFolder(currentPath, folderName);
    }

    /**
     * 复制文件
     * @param copyFiles 文件名集合
     * @param copyToPath 目标路径
     * @return
     */
    @Override
    public void copyFile(List<String> copyFiles, String copyToPath) throws IOException {
        List<File> collect = copyFiles.stream().map(item -> new File(item)).collect(Collectors.toList());
        FileUtil.copyFile(collect,copyToPath);
    }
}
